package cn.tedu.boot.ers.mapper;

import cn.tedu.boot.ers.entity.Dishes;
import cn.tedu.boot.ers.pojo.vo.OrderProductDetailsVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

@Repository
public interface DishesMapper {
    /**
     * 增加菜
     *
     * @param dishes 封装对象
     * @return 返回受影响的行数
     */
    int insert(Dishes dishes);

    /**
     * 根据用户的id,得到当前用户OrderProductDetails
     *
     * @param userId 用户id
     */
    List<OrderProductDetailsVO> getOrderProductDetailsVO(Long userId);

    /**
     * 根据用户的id,得到当前用户点菜的总价
     *
     * @param userId 用户id
     * @return 总价
     */
    BigDecimal getTotalMoney(Long userId);

    /**
     * 减少菜
     *
     * @param productId 菜的id
     * @param userId    用户的id
     * @return 返回受影响的行数
     */
    int delete(@Param("productId") Long productId,
               @Param("userId") Long userId);

    /**
     * 根据userId,将已经添加到订单的菜清空
     * @param userId userId
     */
    int deleteByUserId(Long userId);
}
